package T02_登录案例测试;

import T01_JDBCUtils封装.JDBCUtils;

import java.sql.*;
import java.util.Scanner;

/**
 * 练习
 * 1.需求:通过键盘录入用户名和密码
 * 2.判断用户是否登录成功
 *        * select * from  user where  username="" and password="";
 *        * 如果这个sql有查询结果则成功,反之则失败
 */
public class TestDemo02 {

    public static void main(String[] args) throws SQLException {
        //1.键盘录入
        Scanner cs=new Scanner(System.in);
        //2.调用方法
        System.out.println("请输入用户名");
        String userName = cs.next();
        System.out.println("请输入密码");
        String password = cs.next();
        boolean login = TestDemo02.login(userName, password);
        //3.判断结果,输出不同语句
        if(login){
            System.out.println("登录成功");
        }else {
            System.out.println("登录失败");
        }


    }

    /**
     * 登录方法
     */
    public static   boolean  login(String username,String password) throws SQLException {
        if(username==null&&password==null){
            return false;
        }
        Connection connection=null;
        PreparedStatement statement=null;
        ResultSet  resultSet=null;
        try {
            //连接数据库判断是否登录成功
            //1.获取数据库连接
            connection = JDBCUtils.getConnection();
            //2.定义sql
            String sql="select * from user where name=? and password=?";
            System.out.println(sql);
            //3.获取执行sql的对象
            statement = connection.prepareStatement(sql);
            statement.setString(1,username);
            statement.setString(2,password);
            //4.执行查询 不需要传参    有一个需要传参数是父类的 我们选空参
            resultSet=statement.executeQuery();
            //5.判断
            return  resultSet.next();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.close(resultSet,statement,connection);
        }
        return false;
    }
}
